You could create an overlay DC and draw to that instead of the screen DC.
[a DC the same size as the screen and running top of the Z-order]
Another way to try is to save the image under the text (before you draw the text) and copy this image back when you draw the next text (after the mouse moves again). This may have some issues if the background changes inbetween
paste old image over previous text,
save new image
draw new text
You will need;
a mem DC to hold the image (HBITMAP).
CreateCompatibleDC()
Create at start up
Destroy at close
A bitmap
CreateCompatibleBitmap()
Create at start up
Destroy at close
Calculate the text area
DrawText() with DT_CALCRECT
BitBlt() to copy the image